/**
 * 日期格式化
 * @param {Number,String,Date} time
 * @param {String} formatStr
 * @returns 2019-08-03 08:30:14
 */
function dateformat(time, formatStr) {
  formatStr = formatStr || 'y-m-d h:M:s';
  if (!time) {
    return time;
  }
  //数字时间戳 和 字符串时间戳   或者 Date对象 统一转为时间戳字符串
  var timeStr = +time + '';
  var reg = /^\d{10,13}$/;
  if (!reg.test(timeStr)) {
    return time;
  }
  // 如果不是13位时间戳 转为13位 ps:js 需要13位时间戳
  if (timeStr.length !== 13) {
    time *= 1000;
  }
  // 转为日期对象 调用日期方法
  time = new Date(time);

  // 补零函数
  function addZero(params) {
    return parseInt(params) >= 10 ? params : "0" + params;
  };
  var obj = {
    y: time.getFullYear(),
    m: addZero(time.getMonth() + 1),
    d: addZero(time.getDate()),
    h: addZero(time.getHours()),
    M: addZero(time.getMinutes()),
    s: addZero(time.getSeconds()),
  };
  // 日期替换正则
  var reg2 = /y|m|d|h|M|s/g;
  var outStr = formatStr.replace(reg2, function($0, $1) {
    return obj[$0] ? obj[$0] : $0;
  });
  return outStr;
}

module.exports = dateformat;
